package com.perfma.xtest.tool.word;

//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//import com.deepoove.poi.XWPFTemplate;
//import com.deepoove.poi.config.Configure;
//import com.deepoove.poi.data.*;
//import com.deepoove.poi.data.style.TableStyle;
//import com.deepoove.poi.policy.TOCRenderPolicy;
//import com.google.common.collect.Lists;
//import com.google.common.collect.Maps;
//import com.google.common.collect.Sets;
//import com.perfma.xtest.tool.DateUtils;
//import com.perfma.xtest.tool.TestFileUtil;
import lombok.extern.slf4j.Slf4j;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STJc;

import java.io.FileOutputStream;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.*;

/**
 * 生成合并后的报告的word
 *
 * @author: junhui.si
 * @date: 2020-11-13 15:38
 **/
@Slf4j
public class PlanReportWordExportHelper {
//
//    private static final String NO_DATA_DESC = "无数据";
//    /**
//     * 横/纵坐标 展示转换
//     */
//    private static final String X_Y_VIEW_TRANS_FORM = "TIMESTAMP_TO_DATE";
//
//    public static void main(String[] args) {
//        String planReportDTOStr = "{\"canPush\":false,\"conclusion\":\"\\u003Cp\\u003E测试结论为通过\\u003C/p\\u003E\",\"createTime\":1603551161000,\"creator\":{\"imgUrl\":\"perfma-default-biz-avatar.jpg\",\"nickName\":\"杭州笨马网络技术有限公司\",\"uid\":\"132078224594309120\"},\"id\":\"71114383789391872\",\"merchantId\":\"132078224594309120\",\"modifier\":{\"imgUrl\":\"perfma-default-biz-avatar.jpg\",\"nickName\":\"杭州笨马网络技术有限公司\",\"uid\":\"132078224594309120\"},\"modifyTime\":1605254552000,\"planGoalList\":[{\"alertRuleCount\":8,\"alertRuleList\":[{\"alertRuleChineseDescription\":\"应用的平均CPU利用率大于等于5.00%且小于90.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均CPU利用率\",\"eventType\":\"ANALYSE_CPU\",\"goalId\":\"71111367619248128\",\"id\":\"71111367675871232\",\"merchantId\":\"132078224594309120\",\"name\":\"平均CPU利用率\",\"percentage\":true,\"quota\":\"$.cpu.avgWholeCpuUsagePercent\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":0.9,\"thresholdUp\":0.05,\"type\":\"APP\",\"unit\":\"%\"},{\"alertRuleChineseDescription\":\"应用的平均内存占用率小于80.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均内存占用率\",\"eventType\":\"ANALYSE_MEM\",\"goalId\":\"71111367619248128\",\"id\":\"71111367677968384\",\"merchantId\":\"132078224594309120\",\"name\":\"平均内存占用率\",\"percentage\":true,\"quota\":\"$.mem.avgMemUsagePercent\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":0.8,\"type\":\"APP\",\"unit\":\"%\"},{\"alertRuleChineseDescription\":\"应用的平均网络发送丢包量小于10000.00\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均网络发送丢包量\",\"goalId\":\"71111367619248128\",\"id\":\"71111367680065536\",\"merchantId\":\"132078224594309120\",\"name\":\"平均网络发送丢包量\",\"percentage\":false,\"quota\":\"$.net.avgNetSendDrops\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":10000.0,\"type\":\"APP\",\"unit\":\"KB\"},{\"alertRuleChineseDescription\":\"应用的平均网络接收丢包量大于等于22.00且小于10000.00\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均网络接收丢包量\",\"goalId\":\"71111367619248128\",\"id\":\"71111367681114112\",\"merchantId\":\"132078224594309120\",\"name\":\"平均网络接收丢包量\",\"percentage\":false,\"quota\":\"$.net.avgNetReceiveDrops\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":10000.0,\"thresholdUp\":22.0,\"type\":\"APP\",\"unit\":\"KB\"},{\"alertRuleChineseDescription\":\"事务的事务成功率大于等于100.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"事务成功率\",\"goalId\":\"71111367619248128\",\"id\":\"71111367683211264\",\"merchantId\":\"132078224594309120\",\"name\":\"事务成功率\",\"percentage\":true,\"quota\":\"$.successPercent\",\"quotaType\":\"stress_report_summary\",\"quotaTypeName\":\"事务\",\"require\":\"≥\",\"targetType\":5,\"thresholdUp\":1.0,\"type\":\"BIZ\",\"unit\":\"%\"},{\"alertRuleChineseDescription\":\"事务的成功平均响应时间小于1000.00\\u0028允许浮动范围:无\\u0029\",\"description\":\"成功平均响应时间\",\"goalId\":\"71111367619248128\",\"id\":\"71111367684259840\",\"merchantId\":\"132078224594309120\",\"name\":\"成功平均响应时间\",\"percentage\":false,\"quota\":\"$.successAvgResponseTime\",\"quotaType\":\"stress_report_summary\",\"quotaTypeName\":\"事务\",\"require\":\"\\u003C\",\"targetType\":5,\"thresholdDown\":1000.0,\"type\":\"BIZ\",\"unit\":\"ms\"},{\"alertRuleChineseDescription\":\"事务的成功TPS大于等于1.00\\u0028允许浮动范围:下降2.23上升0.33\\u0029\",\"description\":\"成功TPS\",\"floatRateDown\":2.23,\"floatRateUp\":0.33,\"goalId\":\"71111367619248128\",\"id\":\"71111367686356992\",\"merchantId\":\"132078224594309120\",\"name\":\"成功TPS\",\"percentage\":false,\"quota\":\"$.successTps\",\"quotaType\":\"stress_report_summary\",\"quotaTypeName\":\"事务\",\"require\":\"≥\",\"targetType\":5,\"thresholdUp\":1.0,\"type\":\"BIZ\",\"unit\":\"笔/秒\"},{\"alertRuleChineseDescription\":\"应用的最大CPU利用率小于90.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"最大CPU利用率，包括SYS和USER\",\"eventType\":\"ANALYSE_CPU\",\"goalId\":\"71111367619248128\",\"id\":\"71111367687405568\",\"merchantId\":\"132078224594309120\",\"name\":\"最大CPU利用率\",\"percentage\":true,\"quota\":\"$.cpu.maxWholeCpuUsagePercent\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":0.9,\"type\":\"APP\",\"unit\":\"%\"}],\"createTime\":1604306554599,\"id\":\"71111367619248128\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1604306554599,\"name\":\"下单\",\"planGoalResultList\":[],\"planId\":\"71111334373097472\",\"status\":true,\"type\":\"BASELINE\",\"typeName\":\"基准场景\",\"workspaceId\":\"71110801821270016\"},{\"alertRuleCount\":8,\"alertRuleList\":[{\"alertRuleChineseDescription\":\"应用的平均CPU利用率大于等于5.00%且小于90.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均CPU利用率\",\"eventType\":\"ANALYSE_CPU\",\"goalId\":\"71113815433936896\",\"id\":\"71113815451762688\",\"merchantId\":\"132078224594309120\",\"name\":\"平均CPU利用率\",\"percentage\":true,\"quota\":\"$.cpu.avgWholeCpuUsagePercent\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":0.9,\"thresholdUp\":0.05,\"type\":\"APP\",\"unit\":\"%\"},{\"alertRuleChineseDescription\":\"应用的平均内存占用率小于80.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均内存占用率\",\"eventType\":\"ANALYSE_MEM\",\"goalId\":\"71113815433936896\",\"id\":\"71113815453859840\",\"merchantId\":\"132078224594309120\",\"name\":\"平均内存占用率\",\"percentage\":true,\"quota\":\"$.mem.avgMemUsagePercent\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":0.8,\"type\":\"APP\",\"unit\":\"%\"},{\"alertRuleChineseDescription\":\"应用的平均网络发送丢包量小于10000.00\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均网络发送丢包量\",\"goalId\":\"71113815433936896\",\"id\":\"71113815454908416\",\"merchantId\":\"132078224594309120\",\"name\":\"平均网络发送丢包量\",\"percentage\":false,\"quota\":\"$.net.avgNetSendDrops\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":10000.0,\"type\":\"APP\",\"unit\":\"KB\"},{\"alertRuleChineseDescription\":\"应用的平均网络接收丢包量大于等于22.00且小于10000.00\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均网络接收丢包量\",\"goalId\":\"71113815433936896\",\"id\":\"71113815455956992\",\"merchantId\":\"132078224594309120\",\"name\":\"平均网络接收丢包量\",\"percentage\":false,\"quota\":\"$.net.avgNetReceiveDrops\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":10000.0,\"thresholdUp\":22.0,\"type\":\"APP\",\"unit\":\"KB\"},{\"alertRuleChineseDescription\":\"事务的事务成功率大于等于100.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"事务成功率\",\"goalId\":\"71113815433936896\",\"id\":\"71113815458054144\",\"merchantId\":\"132078224594309120\",\"name\":\"事务成功率\",\"percentage\":true,\"quota\":\"$.successPercent\",\"quotaType\":\"stress_report_summary\",\"quotaTypeName\":\"事务\",\"require\":\"≥\",\"targetType\":5,\"thresholdUp\":1.0,\"type\":\"BIZ\",\"unit\":\"%\"},{\"alertRuleChineseDescription\":\"事务的成功平均响应时间小于1000.00\\u0028允许浮动范围:无\\u0029\",\"description\":\"成功平均响应时间\",\"goalId\":\"71113815433936896\",\"id\":\"71113815459102720\",\"merchantId\":\"132078224594309120\",\"name\":\"成功平均响应时间\",\"percentage\":false,\"quota\":\"$.successAvgResponseTime\",\"quotaType\":\"stress_report_summary\",\"quotaTypeName\":\"事务\",\"require\":\"\\u003C\",\"targetType\":5,\"thresholdDown\":1000.0,\"type\":\"BIZ\",\"unit\":\"ms\"},{\"alertRuleChineseDescription\":\"事务的成功TPS大于等于1.00\\u0028允许浮动范围:下降2.23上升0.33\\u0029\",\"description\":\"成功TPS\",\"floatRateDown\":2.23,\"floatRateUp\":0.33,\"goalId\":\"71113815433936896\",\"id\":\"71113815460151296\",\"merchantId\":\"132078224594309120\",\"name\":\"成功TPS\",\"percentage\":false,\"quota\":\"$.successTps\",\"quotaType\":\"stress_report_summary\",\"quotaTypeName\":\"事务\",\"require\":\"≥\",\"targetType\":5,\"thresholdUp\":1.0,\"type\":\"BIZ\",\"unit\":\"笔/秒\"},{\"alertRuleChineseDescription\":\"应用的最大CPU利用率小于90.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"最大CPU利用率，包括SYS和USER\",\"eventType\":\"ANALYSE_CPU\",\"goalId\":\"71113815433936896\",\"id\":\"71113815462248448\",\"merchantId\":\"132078224594309120\",\"name\":\"最大CPU利用率\",\"percentage\":true,\"quota\":\"$.cpu.maxWholeCpuUsagePercent\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":0.9,\"type\":\"APP\",\"unit\":\"%\"}],\"createTime\":1604306554611,\"id\":\"71113815433936896\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1604306554611,\"name\":\"交易003\",\"planGoalResultList\":[],\"planId\":\"71111334373097472\",\"status\":true,\"type\":\"SINGLE_USER_TREND\",\"typeName\":\"单场景-并发数趋势\",\"workspaceId\":\"71110801821270016\"},{\"alertRuleCount\":8,\"alertRuleList\":[{\"alertRuleChineseDescription\":\"应用的平均CPU利用率大于等于5.00%且小于90.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均CPU利用率\",\"eventType\":\"ANALYSE_CPU\",\"goalId\":\"71114111916703744\",\"id\":\"71114111936626688\",\"merchantId\":\"132078224594309120\",\"name\":\"平均CPU利用率\",\"percentage\":true,\"quota\":\"$.cpu.avgWholeCpuUsagePercent\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":0.9,\"thresholdUp\":0.05,\"type\":\"APP\",\"unit\":\"%\"},{\"alertRuleChineseDescription\":\"应用的平均内存占用率小于80.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均内存占用率\",\"eventType\":\"ANALYSE_MEM\",\"goalId\":\"71114111916703744\",\"id\":\"71114111939772416\",\"merchantId\":\"132078224594309120\",\"name\":\"平均内存占用率\",\"percentage\":true,\"quota\":\"$.mem.avgMemUsagePercent\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":0.8,\"type\":\"APP\",\"unit\":\"%\"},{\"alertRuleChineseDescription\":\"应用的平均网络发送丢包量小于10000.00\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均网络发送丢包量\",\"goalId\":\"71114111916703744\",\"id\":\"71114111942918144\",\"merchantId\":\"132078224594309120\",\"name\":\"平均网络发送丢包量\",\"percentage\":false,\"quota\":\"$.net.avgNetSendDrops\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":10000.0,\"type\":\"APP\",\"unit\":\"KB\"},{\"alertRuleChineseDescription\":\"应用的平均网络接收丢包量大于等于22.00且小于10000.00\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均网络接收丢包量\",\"goalId\":\"71114111916703744\",\"id\":\"71114111943966720\",\"merchantId\":\"132078224594309120\",\"name\":\"平均网络接收丢包量\",\"percentage\":false,\"quota\":\"$.net.avgNetReceiveDrops\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":10000.0,\"thresholdUp\":22.0,\"type\":\"APP\",\"unit\":\"KB\"},{\"alertRuleChineseDescription\":\"事务的事务成功率大于等于100.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"事务成功率\",\"goalId\":\"71114111916703744\",\"id\":\"71114111946063872\",\"merchantId\":\"132078224594309120\",\"name\":\"事务成功率\",\"percentage\":true,\"quota\":\"$.successPercent\",\"quotaType\":\"stress_report_summary\",\"quotaTypeName\":\"事务\",\"require\":\"≥\",\"targetType\":5,\"thresholdUp\":1.0,\"type\":\"BIZ\",\"unit\":\"%\"},{\"alertRuleChineseDescription\":\"事务的成功平均响应时间小于1000.00\\u0028允许浮动范围:无\\u0029\",\"description\":\"成功平均响应时间\",\"goalId\":\"71114111916703744\",\"id\":\"71114111947112448\",\"merchantId\":\"132078224594309120\",\"name\":\"成功平均响应时间\",\"percentage\":false,\"quota\":\"$.successAvgResponseTime\",\"quotaType\":\"stress_report_summary\",\"quotaTypeName\":\"事务\",\"require\":\"\\u003C\",\"targetType\":5,\"thresholdDown\":1000.0,\"type\":\"BIZ\",\"unit\":\"ms\"},{\"alertRuleChineseDescription\":\"事务的成功TPS大于等于1.00\\u0028允许浮动范围:下降2.23上升0.33\\u0029\",\"description\":\"成功TPS\",\"floatRateDown\":2.23,\"floatRateUp\":0.33,\"goalId\":\"71114111916703744\",\"id\":\"71114111949209600\",\"merchantId\":\"132078224594309120\",\"name\":\"成功TPS\",\"percentage\":false,\"quota\":\"$.successTps\",\"quotaType\":\"stress_report_summary\",\"quotaTypeName\":\"事务\",\"require\":\"≥\",\"targetType\":5,\"thresholdUp\":1.0,\"type\":\"BIZ\",\"unit\":\"笔/秒\"},{\"alertRuleChineseDescription\":\"应用的最大CPU利用率小于90.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"最大CPU利用率，包括SYS和USER\",\"eventType\":\"ANALYSE_CPU\",\"goalId\":\"71114111916703744\",\"id\":\"71114111950258176\",\"merchantId\":\"132078224594309120\",\"name\":\"最大CPU利用率\",\"percentage\":true,\"quota\":\"$.cpu.maxWholeCpuUsagePercent\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":0.9,\"type\":\"APP\",\"unit\":\"%\"}],\"createTime\":1604306554621,\"id\":\"71114111916703744\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1604306554621,\"name\":\"交易-8小时稳定性场景\",\"planGoalResultList\":[],\"planId\":\"71111334373097472\",\"status\":true,\"type\":\"STABLE_TIME_TREND\",\"typeName\":\"稳定性-时间趋势\",\"workspaceId\":\"71110801821270016\"},{\"alertRuleCount\":6,\"alertRuleList\":[{\"alertRuleChineseDescription\":\"应用的平均CPU利用率大于等于5.00%且小于90.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均CPU利用率\",\"eventType\":\"ANALYSE_CPU\",\"goalId\":\"71180860700753920\",\"id\":\"71180860719628288\",\"merchantId\":\"132078224594309120\",\"name\":\"平均CPU利用率\",\"percentage\":true,\"quota\":\"$.cpu.avgWholeCpuUsagePercent\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":0.9,\"thresholdUp\":0.05,\"type\":\"APP\",\"unit\":\"%\"},{\"alertRuleChineseDescription\":\"应用的平均内存占用率小于80.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均内存占用率\",\"eventType\":\"ANALYSE_MEM\",\"goalId\":\"71180860700753920\",\"id\":\"71180860720676864\",\"merchantId\":\"132078224594309120\",\"name\":\"平均内存占用率\",\"percentage\":true,\"quota\":\"$.mem.avgMemUsagePercent\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":0.8,\"type\":\"APP\",\"unit\":\"%\"},{\"alertRuleChineseDescription\":\"应用的平均网络发送丢包量小于10000.00\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均网络发送丢包量\",\"goalId\":\"71180860700753920\",\"id\":\"71180860721725440\",\"merchantId\":\"132078224594309120\",\"name\":\"平均网络发送丢包量\",\"percentage\":false,\"quota\":\"$.net.avgNetSendDrops\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":10000.0,\"type\":\"APP\",\"unit\":\"KB\"},{\"alertRuleChineseDescription\":\"应用[绝地求生]的平均网络接收丢包量\\u0028允许浮动范围:无\\u0029\",\"description\":\"平均网络接收丢包量\",\"goalId\":\"71180860700753920\",\"id\":\"71180860722774016\",\"merchantId\":\"132078224594309120\",\"name\":\"平均网络接收丢包量\",\"percentage\":false,\"quota\":\"$.net.avgNetReceiveDrops\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetId\":\"15079697626955776\",\"targetName\":\"绝地求生\",\"targetType\":1,\"type\":\"APP\",\"unit\":\"KB\"},{\"alertRuleChineseDescription\":\"应用的最大CPU利用率小于90.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"最大CPU利用率，包括SYS和USER\",\"eventType\":\"ANALYSE_CPU\",\"goalId\":\"71180860700753920\",\"id\":\"71180860728016896\",\"merchantId\":\"132078224594309120\",\"name\":\"最大CPU利用率\",\"percentage\":true,\"quota\":\"$.cpu.maxWholeCpuUsagePercent\",\"quotaType\":\"system_report_summary_for_xsea\",\"quotaTypeName\":\"应用\",\"require\":\"\\u003C\",\"targetType\":1,\"thresholdDown\":0.9,\"type\":\"APP\",\"unit\":\"%\"},{\"alertRuleChineseDescription\":\"事务[下单]的事务成功率大于等于90.00%\\u0028允许浮动范围:无\\u0029\",\"description\":\"事务成功率\",\"goalId\":\"71180860700753920\",\"id\":\"71281487513649152\",\"merchantId\":\"132078224594309120\",\"name\":\"事务成功率\",\"percentage\":true,\"quota\":\"$.successPercent\",\"quotaType\":\"stress_report_summary\",\"quotaTypeName\":\"事务\",\"require\":\"≥\",\"sceneId\":\"71118023929364480\",\"sceneName\":\"6620201024235032\",\"targetName\":\"下单\",\"targetType\":5,\"thresholdUp\":0.9,\"type\":\"BIZ\",\"unit\":\"%\"}],\"createTime\":1604306554630,\"id\":\"71180860700753920\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1604306554630,\"name\":\"交易-混合\",\"planGoalResultList\":[],\"planId\":\"71111334373097472\",\"status\":true,\"type\":\"MIX_USER_TREND\",\"typeName\":\"混合场景-并发数趋势\",\"workspaceId\":\"71110801821270016\"}],\"planId\":\"71111334373097472\",\"purpose\":\"dsfsdfds \",\"serverInfo\":[],\"title\":\"无涯报告A\",\"workspaceId\":\"71110801821270016\"}";
//        PlanReportDTO planReportDTO = JSON.parseObject(planReportDTOStr, PlanReportDTO.class);
//
//        List<PlanReportDataEachGoalTypeDTO> dataList = Lists.newArrayList();
//        String s1 = "{\"bizData\":{\"chartDataList\":[{\"barDataMap\":{\"登录\":\"322.09\",\"下单\":\"323.38\",\"17923/doc_html\":\"3.01\"},\"chartName\":\"事务平均响应时间\",\"chartType\":\"WBAR\",\"xName\":\"平均响应时间\\u0028ms\\u0029\",\"xUnit\":\"\\u0028ms\\u0029\"}],\"dataType\":\"BIZ\",\"tableDataList\":[{\"dataList\":[{\"allUsers\":[\"20\",\"\",\"\"],\"appAllUsers\":[\"20\"],\"appName\":[\"压力机\"],\"avgMemUsagePercent\":[\"13.91%\"],\"avgWholeCpuUsagePercent\":[\"3.84%\"],\"failCount\":[\"0\",\"0\",\"0\"],\"name\":[\"登录\",\"下单\",\"17923/doc_html\"],\"ninetyResponseTime\":[\"375\",\"374\",\"4\"],\"sceneName\":[],\"sceneNameApp\":[],\"successCount\":[\"2036\",\"2007\",\"1997\"],\"successPercent\":[\"100%\",\"100%\",\"100%\"],\"successTps\":[\"28.67\",\"28.26\",\"28.12\"],\"thinkingTime\":[\"0\",\"0\",\"无数据\"],\"totalAvgResponseTime\":[\"322.09\",\"323.38\",\"3.01\"],\"totalFailCount\":[\"0\",\"\",\"\"],\"totalSuccessCount\":[\"6040\",\"\",\"\"],\"totalSuccessPercent\":[\"100%\",\"\",\"\"],\"totalSuccessTps\":[\"85.07\",\"\",\"\"],\"transNameKey\":[\"登录_下单_17923/doc_html\",\"\",\"\"]}],\"tableName\":\"压力视角数据汇总\",\"titleMap\":{\"name\":\"事务名称\",\"allUsers\":\"并发数\",\"successCount\":\"成功数\",\"failCount\":\"失败数\",\"successPercent\":\"成功率\\u0028%\\u0029\",\"successTps\":\"成功tps\\u0028笔/秒\\u0029\",\"totalAvgResponseTime\":\"平均响应时间\\u0028ms\\u0029\",\"ninetyResponseTime\":\"90%响应时间\\u0028ms\\u0029\",\"thinkingTime\":\"延迟设置\\u0028ms\\u0029\"}}]},\"deletedReportList\":[{\"alerts\":0,\"allUsers\":20,\"baseline\":false,\"createTime\":1603550363000,\"creatorId\":\"132078224594309120\",\"endTime\":1603550437000,\"goalId\":\"71111367619248128\",\"id\":\"526891667043647488\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603550363000,\"outerTaskId\":\"\",\"pass\":true,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/58/D2/wKgAQl-UPJqEP6VvAAAAAAAAAAA563.log\",\"responseErrorFileKey\":\"group1/M00/58/D2/wKgAQl-UPJqEKT_yAAAAAAAAAAA671.log\",\"runLogFileKey\":\"group1/M00/58/D2/wKgAQl-UPJqEVgX1AAAAAAAAAAA969.log\",\"sceneExecId\":\"71113543994310656\",\"sceneId\":\"71112304687579136\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201024223922\",\"startTime\":1603550363000,\"suspected\":0,\"title\":\"20VU-1分钟13秒-基本脚本120201024221938\",\"workspaceId\":\"71110801821270016\"}],\"description\":\"\\u003Cp\\u003E基准测试情况的\\u003Cstrong\\u003E数据132\\u003C/strong\\u003E\\u003C/p\\u003E\",\"id\":\"71114383846014976\",\"name\":\"基准场景\",\"planGoalType\":\"BASELINE\",\"planReportDataId\":\"71114383846014976\",\"planReportId\":\"71114383789391872\",\"reportIdList\":[\"526891667043647488\"],\"reportList\":[{\"alerts\":0,\"allUsers\":20,\"baseline\":false,\"createTime\":1603550363000,\"creatorId\":\"132078224594309120\",\"endTime\":1603550437000,\"goalId\":\"71111367619248128\",\"id\":\"526891667043647488\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603550363000,\"outerTaskId\":\"\",\"pass\":true,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/58/D2/wKgAQl-UPJqEP6VvAAAAAAAAAAA563.log\",\"responseErrorFileKey\":\"group1/M00/58/D2/wKgAQl-UPJqEKT_yAAAAAAAAAAA671.log\",\"runLogFileKey\":\"group1/M00/58/D2/wKgAQl-UPJqEVgX1AAAAAAAAAAA969.log\",\"sceneExecId\":\"71113543994310656\",\"sceneId\":\"71112304687579136\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201024223922\",\"startTime\":1603550363000,\"suspected\":0,\"title\":\"20VU-1分钟13秒-基本脚本120201024221938\",\"workspaceId\":\"71110801821270016\"}]}";
//        PlanReportDataEachGoalTypeDTO resultInfo1 = JSON.parseObject(s1, PlanReportDataEachGoalTypeDTO.class);
//        String s2 = "{\"appData\":{\"chartDataList\":[{\"chartName\":\"CPU使用率随并发数趋势\",\"chartType\":\"TREND\",\"trendDataMap\":{\"压力机_登录_下单_17923/doc_html\":{\"20\":\"3.68\",\"40\":\"1.55\",\"50\":\"1.41\"}},\"xName\":\"并发数\",\"xUnit\":\"\\u0028个\\u0029\",\"yName\":\"CPU使用率\\u0028%\\u0029\\u0029\",\"yUnit\":\"%\"},{\"chartName\":\"内存使用率随并发数趋势\",\"chartType\":\"TREND\",\"trendDataMap\":{\"压力机_登录_下单_17923/doc_html\":{\"20\":\"13.17\",\"40\":\"13.56\",\"50\":\"13.65\"}},\"xName\":\"并发数\",\"xUnit\":\"\\u0028个\\u0029\",\"yName\":\"内存使用率\\u0028%\\u0029\\u0029\",\"yUnit\":\"%\"}],\"dataType\":\"APP\",\"tableDataList\":[{\"dataList\":[{\"allUsers\":[\"20\",\"\",\"\"],\"appAllUsers\":[\"20\",\"40\",\"50\"],\"appName\":[\"压力机\",\"压力机\",\"压力机\"],\"avgMemUsagePercent\":[\"13.17%\",\"13.56%\",\"13.65%\"],\"avgWholeCpuUsagePercent\":[\"3.68%\",\"1.55%\",\"1.41%\"],\"failCount\":[\"0\",\"0\",\"0\"],\"name\":[\"登录\",\"下单\",\"17923/doc_html\"],\"ninetyResponseTime\":[\"343\",\"340\",\"3\"],\"sceneName\":[\"基本脚本12\",\"\",\"\"],\"sceneNameApp\":[\"基本脚本12\",\"登录下单场景\",\"登录下单场景\"],\"successCount\":[\"2206\",\"2186\",\"2176\"],\"successPercent\":[\"100%\",\"100%\",\"100%\"],\"successTps\":[\"31.07\",\"30.78\",\"30.64\"],\"thinkingTime\":[\"0\",\"0\",\"无数据\"],\"totalAvgResponseTime\":[\"297.19\",\"296.96\",\"2.67\"],\"totalFailCount\":[\"0\",\"\",\"\"],\"totalSuccessCount\":[\"6568\",\"\",\"\"],\"totalSuccessPercent\":[\"100%\",\"\",\"\"],\"totalSuccessTps\":[\"92.5\",\"\",\"\"],\"transNameKey\":[\"登录_下单_17923/doc_html\",\"\",\"\"]}],\"tableName\":\"应用视角数据汇总\",\"titleMap\":{\"sceneNameApp\":\"场景名称\",\"appName\":\"应用名称\",\"appAllUsers\":\"并发数\",\"avgWholeCpuUsagePercent\":\"cpu平均使用率\\u0028%\\u0029\",\"avgMemUsagePercent\":\"内存平均使用率\\u0028%\\u0029\"}}]},\"bizData\":{\"chartDataList\":[{\"chartName\":\"响应时间随并发数趋势\",\"chartType\":\"TREND\",\"trendDataMap\":{\"登录\":{\"20\":\"297.19\",\"40\":\"624.35\",\"50\":\"1788.92\"},\"下单\":{\"20\":\"296.96\",\"40\":\"626.35\",\"50\":\"1796.4\"},\"17923/doc_html\":{\"20\":\"2.67\",\"40\":\"2.47\",\"50\":\"4.06\"}},\"xName\":\"并发数\",\"xUnit\":\"\\u0028个\\u0029\",\"yName\":\"平均响应时间\\u0028ms\\u0029\",\"yUnit\":\"\\u0028ms\\u0029\"},{\"chartName\":\"TPS随并发数趋势\",\"chartType\":\"TREND\",\"trendDataMap\":{\"登录\":{\"20\":\"31.07\",\"40\":\"31.35\",\"50\":\"13.62\"},\"下单\":{\"20\":\"30.78\",\"40\":\"31.13\",\"50\":\"13.5\"},\"17923/doc_html\":{\"20\":\"30.64\",\"40\":\"31.06\",\"50\":\"13.43\"}},\"xName\":\"并发数\",\"xUnit\":\"\\u0028个\\u0029\",\"yName\":\"TPS\\u0028笔/秒\\u0029\",\"yUnit\":\"\\u0028笔/秒\\u0029\"}],\"dataType\":\"BIZ\",\"tableDataList\":[{\"dataList\":[{\"allUsers\":[\"20\",\"\",\"\",\"40\",\"\",\"\",\"50\",\"\",\"\"],\"appAllUsers\":[\"20\"],\"appName\":[\"压力机\"],\"avgMemUsagePercent\":[\"13.17%\"],\"avgWholeCpuUsagePercent\":[\"3.68%\"],\"failCount\":[\"0\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\"],\"name\":[\"登录\",\"下单\",\"17923/doc_html\",\"登录\",\"下单\",\"17923/doc_html\",\"登录\",\"下单\",\"17923/doc_html\"],\"ninetyResponseTime\":[\"343\",\"340\",\"3\",\"676\",\"674\",\"3\",\"5742\",\"5757\",\"6\"],\"sceneName\":[\"基本脚本12\",\"\",\"\",\"登录下单场景\",\"\",\"\",\"登录下单场景\",\"\",\"\"],\"sceneNameApp\":[\"基本脚本12\"],\"successCount\":[\"2206\",\"2186\",\"2176\",\"9784\",\"9713\",\"9693\",\"4304\",\"4267\",\"4245\"],\"successPercent\":[\"100%\",\"100%\",\"100%\",\"100%\",\"100%\",\"100%\",\"100%\",\"100%\",\"100%\"],\"successTps\":[\"31.07\",\"30.78\",\"30.64\",\"31.35\",\"31.13\",\"31.06\",\"13.62\",\"13.5\",\"13.43\"],\"thinkingTime\":[\"0\",\"0\",\"无数据\",\"0\",\"0\",\"无数据\",\"0\",\"0\",\"无数据\"],\"totalAvgResponseTime\":[\"297.19\",\"296.96\",\"2.67\",\"624.35\",\"626.35\",\"2.47\",\"1788.92\",\"1796.4\",\"4.06\"],\"totalFailCount\":[\"0\",\"\",\"\"],\"totalSuccessCount\":[\"6568\",\"\",\"\"],\"totalSuccessPercent\":[\"100%\",\"\",\"\"],\"totalSuccessTps\":[\"92.5\",\"\",\"\"],\"transNameKey\":[\"登录_下单_17923/doc_html\"]}],\"tableName\":\"压力视角数据汇总\",\"titleMap\":{\"sceneName\":\"场景名称\",\"name\":\"事务名称\",\"allUsers\":\"并发数\",\"successTps\":\"成功tps\\u0028笔/秒\\u0029\",\"totalAvgResponseTime\":\"平均响应时间\\u0028ms\\u0029\",\"successCount\":\"成功数\",\"failCount\":\"失败数\",\"successPercent\":\"成功率\\u0028%\\u0029\",\"ninetyResponseTime\":\"90%响应时间\\u0028ms\\u0029\",\"thinkingTime\":\"延迟设置\\u0028ms\\u0029\"}}]},\"deletedReportList\":[{\"alerts\":0,\"allUsers\":20,\"baseline\":false,\"createTime\":1603550861000,\"creatorId\":\"132078224594309120\",\"endTime\":1603550935000,\"goalId\":\"71113815433936896\",\"id\":\"526893758533337088\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603550861000,\"outerTaskId\":\"\",\"pass\":true,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/58/D2/wKgAQl-UPo2EfQx8AAAAAAAAAAA047.log\",\"runLogFileKey\":\"group1/M00/58/D2/wKgAQl-UPo2EBLdbAAAAAAAAAAA942.log\",\"sceneExecId\":\"71114067298746368\",\"sceneId\":\"71112304687579136\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201024224741\",\"startTime\":1603550861000,\"suspected\":0,\"title\":\"20VU-1分钟14秒-基本脚本120201024221938\",\"workspaceId\":\"71110801821270016\"},{\"alerts\":0,\"allUsers\":40,\"baseline\":false,\"baselineId\":\"526896377922322432\",\"createTime\":1603712413000,\"creatorId\":\"132078224594309120\",\"endTime\":1603712728000,\"goalId\":\"71113815433936896\",\"id\":\"527571356674424832\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603712413000,\"outerTaskId\":\"\",\"pass\":true,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/58/EB/wKgAQl-WtZ2EaEpBAAAAAAAAAAA132.log\",\"runLogFileKey\":\"group1/M00/58/EB/wKgAQl-WtZ2EEO4xAAAAAAAAAAA965.log\",\"sceneExecId\":\"71283466756423680\",\"sceneId\":\"71113751523229696\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201026194013\",\"startTime\":1603712413000,\"suspected\":0,\"title\":\"40VU-5分钟14秒-登录下单场景\",\"workspaceId\":\"71110801821270016\"},{\"alerts\":2,\"allUsers\":50,\"baseline\":false,\"baselineId\":\"526896377922322432\",\"createTime\":1603857455000,\"creatorId\":\"132078224594309120\",\"endTime\":1603857774000,\"goalId\":\"71113815433936896\",\"id\":\"528179705971474432\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603857455000,\"outerTaskId\":\"\",\"pass\":false,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/59/1D/wKgAQl-Y7C-ERA3zAAAAAAAAAAA722.log\",\"responseErrorFileKey\":\"group1/M00/59/1D/wKgAQl-Y7C-EHWQ4AAAAAAAAAAA286.log\",\"runLogFileKey\":\"group1/M00/59/1D/wKgAQl-Y7C-EZH8ZAAAAAAAAAAA042.log\",\"sceneExecId\":\"71435554283061248\",\"sceneId\":\"71113751523229696\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201028115735\",\"startTime\":1603857455000,\"suspected\":0,\"title\":\"50VU-5分钟19秒-登录下单场景\",\"workspaceId\":\"71110801821270016\"}],\"description\":\"\\u003Cp\\u003E验证单场景-并发数趋势\\u003C/p\\u003E\",\"id\":\"71114383849160704\",\"name\":\"单场景-并发数趋势\",\"planGoalType\":\"SINGLE_USER_TREND\",\"planReportDataId\":\"71114383849160704\",\"planReportId\":\"71114383789391872\",\"reportIdList\":[\"526893758533337088\",\"527571356674424832\",\"528179705971474432\"],\"reportList\":[{\"alerts\":0,\"allUsers\":20,\"baseline\":false,\"createTime\":1603550861000,\"creatorId\":\"132078224594309120\",\"endTime\":1603550935000,\"goalId\":\"71113815433936896\",\"id\":\"526893758533337088\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603550861000,\"outerTaskId\":\"\",\"pass\":true,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/58/D2/wKgAQl-UPo2EfQx8AAAAAAAAAAA047.log\",\"runLogFileKey\":\"group1/M00/58/D2/wKgAQl-UPo2EBLdbAAAAAAAAAAA942.log\",\"sceneExecId\":\"71114067298746368\",\"sceneId\":\"71112304687579136\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201024224741\",\"startTime\":1603550861000,\"suspected\":0,\"title\":\"20VU-1分钟14秒-基本脚本120201024221938\",\"workspaceId\":\"71110801821270016\"},{\"alerts\":0,\"allUsers\":40,\"baseline\":false,\"baselineId\":\"526896377922322432\",\"createTime\":1603712413000,\"creatorId\":\"132078224594309120\",\"endTime\":1603712728000,\"goalId\":\"71113815433936896\",\"id\":\"527571356674424832\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603712413000,\"outerTaskId\":\"\",\"pass\":true,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/58/EB/wKgAQl-WtZ2EaEpBAAAAAAAAAAA132.log\",\"runLogFileKey\":\"group1/M00/58/EB/wKgAQl-WtZ2EEO4xAAAAAAAAAAA965.log\",\"sceneExecId\":\"71283466756423680\",\"sceneId\":\"71113751523229696\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201026194013\",\"startTime\":1603712413000,\"suspected\":0,\"title\":\"40VU-5分钟14秒-登录下单场景\",\"workspaceId\":\"71110801821270016\"},{\"alerts\":2,\"allUsers\":50,\"baseline\":false,\"baselineId\":\"526896377922322432\",\"createTime\":1603857455000,\"creatorId\":\"132078224594309120\",\"endTime\":1603857774000,\"goalId\":\"71113815433936896\",\"id\":\"528179705971474432\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603857455000,\"outerTaskId\":\"\",\"pass\":false,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/59/1D/wKgAQl-Y7C-ERA3zAAAAAAAAAAA722.log\",\"responseErrorFileKey\":\"group1/M00/59/1D/wKgAQl-Y7C-EHWQ4AAAAAAAAAAA286.log\",\"runLogFileKey\":\"group1/M00/59/1D/wKgAQl-Y7C-EZH8ZAAAAAAAAAAA042.log\",\"sceneExecId\":\"71435554283061248\",\"sceneId\":\"71113751523229696\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201028115735\",\"startTime\":1603857455000,\"suspected\":0,\"title\":\"50VU-5分钟19秒-登录下单场景\",\"workspaceId\":\"71110801821270016\"}]}";
//        PlanReportDataEachGoalTypeDTO resultInfo2 = JSON.parseObject(s2, PlanReportDataEachGoalTypeDTO.class);
//        String s3 = "{\"appData\":{\"chartDataList\":[{\"chartName\":\"CPU使用率随并发数趋势\",\"chartType\":\"TREND\",\"trendDataMap\":{\"压力机_6620201024235032\":{\"4\":\"4.07\",\"8\":\"2.63\"}},\"xName\":\"并发数\",\"xUnit\":\"\\u0028个\\u0029\",\"yName\":\"CPU使用率\\u0028%\\u0029\\u0029\",\"yUnit\":\"%\"},{\"chartName\":\"内存使用率随并发数趋势\",\"chartType\":\"TREND\",\"trendDataMap\":{\"压力机_6620201024235032\":{\"4\":\"13.71\",\"8\":\"11.7\"}},\"xName\":\"并发数\",\"xUnit\":\"\\u0028个\\u0029\",\"yName\":\"内存使用率\\u0028%\\u0029\\u0029\",\"yUnit\":\"%\"}],\"dataType\":\"APP\",\"tableDataList\":[{\"dataList\":[{\"allUsers\":[\"4\",\"\",\"\"],\"appAllUsers\":[\"4\",\"8\"],\"appName\":[\"压力机\",\"压力机\"],\"avgMemUsagePercent\":[\"13.71%\",\"11.7%\"],\"avgWholeCpuUsagePercent\":[\"4.07%\",\"2.63%\"],\"failCount\":[\"0\",\"0\",\"0\"],\"name\":[\"登录\",\"下单\",\"17923/doc_html\"],\"ninetyResponseTime\":[\"74\",\"72\",\"3\"],\"sceneName\":[\"6620201024235032\",\"\",\"\"],\"sceneNameApp\":[\"6620201024235032\",\"6620201024235032\"],\"successCount\":[\"2106\",\"2079\",\"2079\"],\"successPercent\":[\"100%\",\"100%\",\"100%\"],\"successTps\":[\"30.08\",\"29.69\",\"29.69\"],\"thinkingTime\":[\"0\",\"0\",\"无数据\"],\"totalAvgResponseTime\":[\"63.49\",\"61.5\",\"2.61\"],\"totalFailCount\":[\"0\",\"\",\"\"],\"totalSuccessCount\":[\"6264\",\"\",\"\"],\"totalSuccessPercent\":[\"100%\",\"\",\"\"],\"totalSuccessTps\":[\"89.48\",\"\",\"\"],\"transNameKey\":[\"登录_下单_17923/doc_html\",\"\"]}],\"tableName\":\"应用视角数据汇总\",\"titleMap\":{\"sceneNameApp\":\"场景名称\",\"appName\":\"应用名称\",\"appAllUsers\":\"并发数\",\"avgWholeCpuUsagePercent\":\"cpu平均使用率\\u0028%\\u0029\",\"avgMemUsagePercent\":\"内存平均使用率\\u0028%\\u0029\"}}]},\"bizData\":{\"chartDataList\":[{\"chartName\":\"响应时间随并发数趋势\",\"chartType\":\"TREND\",\"trendDataMap\":{\"登录\":{\"4\":\"63.49\",\"8\":\"112.82\"},\"下单\":{\"4\":\"61.5\",\"8\":\"111.33\"},\"17923/doc_html\":{\"4\":\"2.61\",\"8\":\"2.57\"}},\"xName\":\"并发数\",\"xUnit\":\"\\u0028个\\u0029\",\"yName\":\"平均响应时间\\u0028ms\\u0029\",\"yUnit\":\"\\u0028ms\\u0029\"},{\"chartName\":\"TPS随并发数趋势\",\"chartType\":\"TREND\",\"trendDataMap\":{\"登录\":{\"4\":\"30.08\",\"8\":\"30.39\"},\"下单\":{\"4\":\"29.69\",\"8\":\"30.05\"},\"17923/doc_html\":{\"4\":\"29.69\",\"8\":\"30.05\"}},\"xName\":\"并发数\",\"xUnit\":\"\\u0028个\\u0029\",\"yName\":\"TPS\\u0028笔/秒\\u0029\",\"yUnit\":\"\\u0028笔/秒\\u0029\"},{\"chartName\":\"总TPS随并发数趋势\",\"chartType\":\"TREND\",\"trendDataMap\":{\"总计\":{\"4\":\"89.48\",\"8\":\"90.51\"}},\"xName\":\"并发数\",\"xUnit\":\"\\u0028个\\u0029\",\"yName\":\"总TPS\\u0028笔/秒\\u0029\",\"yUnit\":\"\\u0028笔/秒\\u0029\"}],\"dataType\":\"BIZ\",\"tableDataList\":[{\"dataList\":[{\"allUsers\":[\"4\",\"\",\"\",\"8\",\"\",\"\"],\"appAllUsers\":[],\"appName\":[],\"avgMemUsagePercent\":[],\"avgWholeCpuUsagePercent\":[],\"failCount\":[\"0\",\"0\",\"0\",\"4\",\"4\",\"0\"],\"name\":[\"登录\",\"下单\",\"17923/doc_html\",\"登录\",\"下单\",\"17923/doc_html\"],\"ninetyResponseTime\":[\"74\",\"72\",\"3\",\"139\",\"136\",\"3\"],\"sceneName\":[\"6620201024235032\",\"\",\"\",\"6620201024235032\",\"\",\"\"],\"sceneNameApp\":[],\"successCount\":[\"2106\",\"2079\",\"2079\",\"1064\",\"1052\",\"1052\"],\"successPercent\":[\"100%\",\"100%\",\"100%\",\"99.62%\",\"99.62%\",\"100%\"],\"successTps\":[\"30.08\",\"29.69\",\"29.69\",\"30.39\",\"30.05\",\"30.05\"],\"thinkingTime\":[\"0\",\"0\",\"无数据\",\"0\",\"0\",\"无数据\"],\"totalAvgResponseTime\":[\"63.49\",\"61.5\",\"2.61\",\"112.82\",\"111.33\",\"2.57\"],\"totalFailCount\":[\"0\",\"\",\"\",\"8\",\"\",\"\"],\"totalSuccessCount\":[\"6264\",\"\",\"\",\"3168\",\"\",\"\"],\"totalSuccessPercent\":[\"100%\",\"\",\"\",\"99.74%\",\"\",\"\"],\"totalSuccessTps\":[\"89.48\",\"\",\"\",\"90.51\",\"\",\"\"],\"transNameKey\":[]}],\"tableName\":\"压力视角数据汇总\",\"titleMap\":{\"sceneName\":\"场景名称\",\"name\":\"事务名称\",\"allUsers\":\"并发数\",\"successCount\":\"成功数\",\"failCount\":\"失败数\",\"successPercent\":\"成功率\",\"successTps\":\"成功tps\\u0028笔/秒\\u0029\",\"totalAvgResponseTime\":\"平均响应时间\\u0028ms\\u0029\",\"ninetyResponseTime\":\"90%响应时间\\u0028ms\\u0029\",\"totalSuccessTps\":\"总成功TPS\\u0028笔/秒\\u0029\",\"totalSuccessCount\":\"总成功数\",\"totalFailCount\":\"总失败数\",\"totalSuccessPercent\":\"总成功率\",\"thinkingTime\":\"延迟设置\\u0028ms\\u0029\"}}]},\"deletedReportList\":[{\"alerts\":0,\"allUsers\":4,\"baseline\":false,\"createTime\":1603856785000,\"creatorId\":\"132078224594309120\",\"endTime\":1603856858000,\"goalId\":\"71180860700753920\",\"id\":\"528176893367681024\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603856785000,\"outerTaskId\":\"\",\"pass\":true,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/59/1C/wKgAQl-Y6ZCEReXrAAAAAAAAAAA459.log\",\"responseErrorFileKey\":\"group1/M00/59/1C/wKgAQl-Y6ZCEd-GPAAAAAAAAAAA853.log\",\"runLogFileKey\":\"group1/M00/59/1C/wKgAQl-Y6ZCEEm8LAAAAAAAAAAA935.log\",\"sceneExecId\":\"71434850332049408\",\"sceneId\":\"71118023929364480\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201028114624\",\"startTime\":1603856785000,\"suspected\":0,\"title\":\"4VU-1分钟12秒-6620201024235032\",\"workspaceId\":\"71110801821270016\"},{\"alerts\":-1,\"allUsers\":8,\"baseline\":false,\"createTime\":1603856909000,\"creatorId\":\"132078224594309120\",\"endTime\":1603856995000,\"goalId\":\"71180860700753920\",\"id\":\"528177414321209344\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603856909000,\"outerTaskId\":\"\",\"pass\":false,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/59/1D/wKgAQl-Y6gyEfEa2AAAAAAAAAAA458.log\",\"responseErrorFileKey\":\"group1/M00/59/1D/wKgAQl-Y6gyEBL27AAAAAAAAAAA553.log\",\"runLogFileKey\":\"group1/M00/59/1D/wKgAQl-Y6gyEUfNgAAAAAAAAAAA475.log\",\"sceneExecId\":\"71434981300240384\",\"sceneId\":\"71118023929364480\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201028114828\",\"startTime\":1603856909000,\"suspected\":0,\"title\":\"8VU-1分钟26秒-6620201024235032\",\"workspaceId\":\"71110801821270016\"}],\"description\":\"\",\"id\":\"71114383850209280\",\"name\":\"混合场景-并发数趋势\",\"planGoalType\":\"MIX_USER_TREND\",\"planReportDataId\":\"71114383850209280\",\"planReportId\":\"71114383789391872\",\"reportIdList\":[\"528176893367681024\",\"528177414321209344\"],\"reportList\":[{\"alerts\":0,\"allUsers\":4,\"baseline\":false,\"createTime\":1603856785000,\"creatorId\":\"132078224594309120\",\"endTime\":1603856858000,\"goalId\":\"71180860700753920\",\"id\":\"528176893367681024\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603856785000,\"outerTaskId\":\"\",\"pass\":true,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/59/1C/wKgAQl-Y6ZCEReXrAAAAAAAAAAA459.log\",\"responseErrorFileKey\":\"group1/M00/59/1C/wKgAQl-Y6ZCEd-GPAAAAAAAAAAA853.log\",\"runLogFileKey\":\"group1/M00/59/1C/wKgAQl-Y6ZCEEm8LAAAAAAAAAAA935.log\",\"sceneExecId\":\"71434850332049408\",\"sceneId\":\"71118023929364480\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201028114624\",\"startTime\":1603856785000,\"suspected\":0,\"title\":\"4VU-1分钟12秒-6620201024235032\",\"workspaceId\":\"71110801821270016\"},{\"alerts\":-1,\"allUsers\":8,\"baseline\":false,\"createTime\":1603856909000,\"creatorId\":\"132078224594309120\",\"endTime\":1603856995000,\"goalId\":\"71180860700753920\",\"id\":\"528177414321209344\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603856909000,\"outerTaskId\":\"\",\"pass\":false,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/59/1D/wKgAQl-Y6gyEfEa2AAAAAAAAAAA458.log\",\"responseErrorFileKey\":\"group1/M00/59/1D/wKgAQl-Y6gyEBL27AAAAAAAAAAA553.log\",\"runLogFileKey\":\"group1/M00/59/1D/wKgAQl-Y6gyEUfNgAAAAAAAAAAA475.log\",\"sceneExecId\":\"71434981300240384\",\"sceneId\":\"71118023929364480\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201028114828\",\"startTime\":1603856909000,\"suspected\":0,\"title\":\"8VU-1分钟26秒-6620201024235032\",\"workspaceId\":\"71110801821270016\"}]}";
//        PlanReportDataEachGoalTypeDTO resultInfo3 = JSON.parseObject(s3, PlanReportDataEachGoalTypeDTO.class);
//        String s4 = "{\"appData\":{\"chartDataList\":[{\"chartName\":\"CPU使用率随执行时间趋势\",\"chartType\":\"TREND\",\"trendDataMap\":{\"压力机\":{\"1603701485000\":\"28.53\",\"1603701490000\":\"5.04\",\"1603701495000\":\"3.21\",\"1603701500000\":\"2.73\",\"1603701505000\":\"2.18\",\"1603701510000\":\"1.43\",\"1603701515000\":\"2.88\",\"1603701520000\":\"1.6\",\"1603701525000\":\"1.98\",\"1603701530000\":\"1.37\",\"1603701535000\":\"1.45\",\"1603701540000\":\"2.93\",\"1603701545000\":\"6.05\",\"1603701550000\":\"1.17\",\"1603701555000\":\"5.27\",\"1603701560000\":\"1.22\",\"1603701565000\":\"1.25\",\"1603701570000\":\"1.15\",\"1603701575000\":\"1.1\",\"1603701580000\":\"1.85\",\"1603701585000\":\"0.9\",\"1603701590000\":\"1.4\",\"1603701595000\":\"0.92\",\"1603701600000\":\"1.7\",\"1603701605000\":\"1.15\",\"1603701610000\":\"0.95\",\"1603701615000\":\"1.55\",\"1603701620000\":\"0.85\",\"1603701625000\":\"1.07\",\"1603701630000\":\"1\",\"1603701635000\":\"1\",\"1603701640000\":\"1.07\",\"1603701645000\":\"0.85\",\"1603701650000\":\"0.85\",\"1603701655000\":\"0.95\",\"1603701660000\":\"0.87\",\"1603701665000\":\"1.02\",\"1603701670000\":\"0.85\",\"1603701675000\":\"0.9\",\"1603701680000\":\"0.95\",\"1603701685000\":\"0.87\",\"1603701690000\":\"0.85\",\"1603701695000\":\"1.05\",\"1603701700000\":\"0.82\",\"1603701705000\":\"0.92\",\"1603701710000\":\"1.07\",\"1603701715000\":\"0.87\",\"1603701720000\":\"0.97\",\"1603701725000\":\"0.92\",\"1603701730000\":\"0.92\",\"1603701735000\":\"0.92\",\"1603701740000\":\"0.85\",\"1603701745000\":\"1\",\"1603701750000\":\"0.9\",\"1603701755000\":\"1.2\",\"1603701760000\":\"0.87\",\"1603701765000\":\"0.9\",\"1603701770000\":\"0.82\",\"1603701775000\":\"0.9\",\"1603701780000\":\"0.87\",\"1603701785000\":\"0.95\",\"1603701790000\":\"1.32\"}},\"xName\":\"执行时间\",\"xUnit\":\"毫秒\",\"yName\":\"CPU使用率(%))\",\"yUnit\":\"%\"},{\"chartName\":\"内存使用率随执行时间趋势\",\"chartType\":\"TREND\",\"trendDataMap\":{\"压力机\":{\"1603701485000\":\"12.28\",\"1603701490000\":\"12.99\",\"1603701495000\":\"13.09\",\"1603701500000\":\"13.22\",\"1603701505000\":\"13.29\",\"1603701510000\":\"13.32\",\"1603701515000\":\"13.38\",\"1603701520000\":\"13.38\",\"1603701525000\":\"13.55\",\"1603701530000\":\"13.64\",\"1603701535000\":\"13.65\",\"1603701540000\":\"13.72\",\"1603701545000\":\"14.05\",\"1603701550000\":\"13.99\",\"1603701555000\":\"14\",\"1603701560000\":\"14.04\",\"1603701565000\":\"14.04\",\"1603701570000\":\"14.05\",\"1603701575000\":\"14.09\",\"1603701580000\":\"14.1\",\"1603701585000\":\"14.1\",\"1603701590000\":\"14.11\",\"1603701595000\":\"14.12\",\"1603701600000\":\"14.13\",\"1603701605000\":\"14.13\",\"1603701610000\":\"14.13\",\"1603701615000\":\"14.13\",\"1603701620000\":\"14.13\",\"1603701625000\":\"14.12\",\"1603701630000\":\"14.12\",\"1603701635000\":\"14.12\",\"1603701640000\":\"14.12\",\"1603701645000\":\"14.12\",\"1603701650000\":\"14.12\",\"1603701655000\":\"14.08\",\"1603701660000\":\"14.08\",\"1603701665000\":\"14.08\",\"1603701670000\":\"14.08\",\"1603701675000\":\"14.08\",\"1603701680000\":\"14.06\",\"1603701685000\":\"14.03\",\"1603701690000\":\"14.03\",\"1603701695000\":\"14.05\",\"1603701700000\":\"14.06\",\"1603701705000\":\"14.06\",\"1603701710000\":\"14.05\",\"1603701715000\":\"14.05\",\"1603701720000\":\"14.04\",\"1603701725000\":\"14.03\",\"1603701730000\":\"14.04\",\"1603701735000\":\"14.02\",\"1603701740000\":\"14.02\",\"1603701745000\":\"14.02\",\"1603701750000\":\"14.01\",\"1603701755000\":\"14\",\"1603701760000\":\"13.96\",\"1603701765000\":\"13.95\",\"1603701770000\":\"13.94\",\"1603701775000\":\"13.94\",\"1603701780000\":\"13.92\",\"1603701785000\":\"13.9\",\"1603701790000\":\"13.89\"}},\"xName\":\"执行时间\",\"xUnit\":\"毫秒\",\"yName\":\"内存使用率(%))\",\"yUnit\":\"%\"}],\"dataType\":\"APP\",\"tableDataList\":[{\"dataList\":[{\"allUsers\":[\"40\",\"\",\"\"],\"appAllUsers\":[\"40\"],\"appName\":[\"压力机\"],\"avgMemUsagePercent\":[\"13.9%\"],\"avgWholeCpuUsagePercent\":[\"1.87%\"],\"failCount\":[\"0\",\"0\",\"0\"],\"name\":[\"登录\",\"下单\",\"17923/doc_html\"],\"ninetyResponseTime\":[\"678\",\"676\",\"3\"],\"sceneName\":[\"登录下单场景\",\"\",\"\"],\"sceneNameApp\":[\"登录下单场景\"],\"successCount\":[\"9734\",\"9657\",\"9637\"],\"successPercent\":[\"100%\",\"100%\",\"100%\"],\"successTps\":[\"31.29\",\"31.05\",\"30.98\"],\"thinkingTime\":[\"0\",\"0\",\"无数据\"],\"totalAvgResponseTime\":[\"626.88\",\"629.3\",\"2.13\"],\"totalFailCount\":[\"0\",\"\",\"\"],\"totalSuccessCount\":[\"29028\",\"\",\"\"],\"totalSuccessPercent\":[\"100%\",\"\",\"\"],\"totalSuccessTps\":[\"93.33\",\"\",\"\"],\"transNameKey\":[\"登录_下单_17923/doc_html\"]}],\"tableName\":\"应用视角数据汇总\",\"titleMap\":{\"sceneNameApp\":\"场景名称\",\"appName\":\"应用名称\",\"appAllUsers\":\"并发数\",\"avgWholeCpuUsagePercent\":\"cpu平均使用率(%)\",\"avgMemUsagePercent\":\"内存平均使用率(%)\"}}]},\"bizData\":{\"chartDataList\":[{\"chartName\":\"响应时间随执行时间趋势\",\"xViewTransform\":\"TIMESTAMP_TO_DATE\",\"chartType\":\"TREND\",\"trendDataMap\":{\"下单\":{\"1603701480000\":\"111.65\",\"1603701485000\":\"277.9\",\"1603701490000\":\"564.85\",\"1603701495000\":\"639.7\",\"1603701500000\":\"637.07\",\"1603701505000\":\"643.5\",\"1603701510000\":\"633.54\",\"1603701515000\":\"631.98\",\"1603701520000\":\"618.58\",\"1603701525000\":\"622.49\",\"1603701530000\":\"646.26\",\"1603701535000\":\"627.36\",\"1603701540000\":\"630.88\",\"1603701545000\":\"656.62\",\"1603701550000\":\"629.93\",\"1603701555000\":\"633.01\",\"1603701560000\":\"629.92\",\"1603701565000\":\"631.26\",\"1603701570000\":\"628.03\",\"1603701575000\":\"640.73\",\"1603701580000\":\"611.15\",\"1603701585000\":\"635.74\",\"1603701590000\":\"628.21\",\"1603701595000\":\"612.47\",\"1603701600000\":\"614.2\",\"1603701605000\":\"636.72\",\"1603701610000\":\"647.35\",\"1603701615000\":\"636.89\",\"1603701620000\":\"638.52\",\"1603701625000\":\"641.57\",\"1603701630000\":\"616.52\",\"1603701635000\":\"643.17\",\"1603701640000\":\"625.22\",\"1603701645000\":\"616.63\",\"1603701650000\":\"639.9\",\"1603701655000\":\"610.88\",\"1603701660000\":\"637.3\",\"1603701665000\":\"683.14\",\"1603701670000\":\"655.52\",\"1603701675000\":\"655.55\",\"1603701680000\":\"657.3\",\"1603701685000\":\"652.96\",\"1603701690000\":\"644.62\",\"1603701695000\":\"649.88\",\"1603701700000\":\"644.8\",\"1603701705000\":\"634.93\",\"1603701710000\":\"653.94\",\"1603701715000\":\"655.32\",\"1603701720000\":\"643.18\",\"1603701725000\":\"655.83\",\"1603701730000\":\"635.84\",\"1603701735000\":\"641\",\"1603701740000\":\"620.27\",\"1603701745000\":\"614.5\",\"1603701750000\":\"618.57\",\"1603701755000\":\"637.06\",\"1603701760000\":\"653.15\",\"1603701765000\":\"647.02\",\"1603701770000\":\"673.47\",\"1603701775000\":\"662.37\",\"1603701780000\":\"661.35\",\"1603701785000\":\"666.45\",\"1603701790000\":\"629.05\"},\"登录\":{\"1603701480000\":\"109.5\",\"1603701485000\":\"280.79\",\"1603701490000\":\"576.82\",\"1603701495000\":\"641.33\",\"1603701500000\":\"633.44\",\"1603701505000\":\"643.3\",\"1603701510000\":\"647.44\",\"1603701515000\":\"643.96\",\"1603701520000\":\"616.05\",\"1603701525000\":\"631.16\",\"1603701530000\":\"644.14\",\"1603701535000\":\"615.24\",\"1603701540000\":\"613.69\",\"1603701545000\":\"657.14\",\"1603701550000\":\"628.35\",\"1603701555000\":\"628.52\",\"1603701560000\":\"636.46\",\"1603701565000\":\"631.58\",\"1603701570000\":\"614.91\",\"1603701575000\":\"642.88\",\"1603701580000\":\"618.09\",\"1603701585000\":\"621.44\",\"1603701590000\":\"626.78\",\"1603701595000\":\"604.58\",\"1603701600000\":\"600.39\",\"1603701605000\":\"633.11\",\"1603701610000\":\"639.86\",\"1603701615000\":\"634.56\",\"1603701620000\":\"640.91\",\"1603701625000\":\"641.6\",\"1603701630000\":\"609.71\",\"1603701635000\":\"641.42\",\"1603701640000\":\"616.14\",\"1603701645000\":\"621.84\",\"1603701650000\":\"645.73\",\"1603701655000\":\"631.8\",\"1603701660000\":\"642.66\",\"1603701665000\":\"681.62\",\"1603701670000\":\"646.29\",\"1603701675000\":\"648.6\",\"1603701680000\":\"645.36\",\"1603701685000\":\"643.18\",\"1603701690000\":\"657.93\",\"1603701695000\":\"629.14\",\"1603701700000\":\"640.1\",\"1603701705000\":\"619\",\"1603701710000\":\"650.37\",\"1603701715000\":\"657.1\",\"1603701720000\":\"622.29\",\"1603701725000\":\"662.4\",\"1603701730000\":\"626.78\",\"1603701735000\":\"632.01\",\"1603701740000\":\"610.6\",\"1603701745000\":\"615.07\",\"1603701750000\":\"625.62\",\"1603701755000\":\"645.62\",\"1603701760000\":\"647.11\",\"1603701765000\":\"636.04\",\"1603701770000\":\"656.88\",\"1603701775000\":\"669.46\",\"1603701780000\":\"655.28\",\"1603701785000\":\"665.95\",\"1603701790000\":\"633.13\"},\"17923/doc_html\":{\"1603701480000\":\"3.09\",\"1603701485000\":\"2.9\",\"1603701490000\":\"2.64\",\"1603701495000\":\"2.77\",\"1603701500000\":\"2.57\",\"1603701505000\":\"2.44\",\"1603701510000\":\"2.4\",\"1603701515000\":\"2.64\",\"1603701520000\":\"2.51\",\"1603701525000\":\"2.47\",\"1603701530000\":\"2.52\",\"1603701535000\":\"2.47\",\"1603701540000\":\"2.5\",\"1603701545000\":\"2.46\",\"1603701550000\":\"2.37\",\"1603701555000\":\"2.42\",\"1603701560000\":\"2.23\",\"1603701565000\":\"2.54\",\"1603701570000\":\"2.33\",\"1603701575000\":\"2.52\",\"1603701580000\":\"2.42\",\"1603701585000\":\"2.42\",\"1603701590000\":\"2.38\",\"1603701595000\":\"2.45\",\"1603701600000\":\"2.39\",\"1603701605000\":\"2.24\",\"1603701610000\":\"2.95\",\"1603701615000\":\"2.65\",\"1603701620000\":\"2.56\",\"1603701625000\":\"2.39\",\"1603701630000\":\"2.63\",\"1603701635000\":\"2.44\",\"1603701640000\":\"2.3\",\"1603701645000\":\"2.28\",\"1603701650000\":\"2.87\",\"1603701655000\":\"2.23\",\"1603701660000\":\"2.23\",\"1603701665000\":\"2.34\",\"1603701670000\":\"2.72\",\"1603701675000\":\"2.58\",\"1603701680000\":\"2.5\",\"1603701685000\":\"2.38\",\"1603701690000\":\"3.9\",\"1603701695000\":\"2.43\",\"1603701700000\":\"2.36\",\"1603701705000\":\"2.39\",\"1603701710000\":\"2.45\",\"1603701715000\":\"2.4\",\"1603701720000\":\"2.51\",\"1603701725000\":\"2.47\",\"1603701730000\":\"2.65\",\"1603701735000\":\"2.46\",\"1603701740000\":\"2.33\",\"1603701745000\":\"2.22\",\"1603701750000\":\"2.4\",\"1603701755000\":\"2.34\",\"1603701760000\":\"2.56\",\"1603701765000\":\"2.48\",\"1603701770000\":\"3.1\",\"1603701775000\":\"3.07\",\"1603701780000\":\"3.01\",\"1603701785000\":\"2.86\",\"1603701790000\":\"3.53\"},\"allGroups\":{}},\"xName\":\"执行时间\",\"xUnit\":\"毫秒\",\"yName\":\"平均响应时间(ms)\",\"yUnit\":\"(ms)\"},{\"chartName\":\"TPS随执行时间趋势\",\"chartType\":\"TREND\",\"trendDataMap\":{\"下单\":{\"1603701480000\":\"6.4\",\"1603701485000\":\"30\",\"1603701490000\":\"31.19\",\"1603701495000\":\"31.19\",\"1603701500000\":\"31.39\",\"1603701505000\":\"31.19\",\"1603701510000\":\"31.39\",\"1603701515000\":\"30.19\",\"1603701520000\":\"32.6\",\"1603701525000\":\"32\",\"1603701530000\":\"31.19\",\"1603701535000\":\"31.39\",\"1603701540000\":\"31.8\",\"1603701545000\":\"30.6\",\"1603701550000\":\"31.39\",\"1603701555000\":\"31.8\",\"1603701560000\":\"30.8\",\"1603701565000\":\"31.39\",\"1603701570000\":\"31.8\",\"1603701575000\":\"31.39\",\"1603701580000\":\"32.6\",\"1603701585000\":\"31.19\",\"1603701590000\":\"32\",\"1603701595000\":\"32.79\",\"1603701600000\":\"32\",\"1603701605000\":\"31.6\",\"1603701610000\":\"30.8\",\"1603701615000\":\"30.6\",\"1603701620000\":\"31.19\",\"1603701625000\":\"31.39\",\"1603701630000\":\"32.39\",\"1603701635000\":\"30.39\",\"1603701640000\":\"32.39\",\"1603701645000\":\"32.39\",\"1603701650000\":\"31\",\"1603701655000\":\"32.79\",\"1603701660000\":\"31.19\",\"1603701665000\":\"29\",\"1603701670000\":\"30.19\",\"1603701675000\":\"30.19\",\"1603701680000\":\"30.6\",\"1603701685000\":\"30.39\",\"1603701690000\":\"30.8\",\"1603701695000\":\"30\",\"1603701700000\":\"31.39\",\"1603701705000\":\"31.8\",\"1603701710000\":\"30\",\"1603701715000\":\"30.6\",\"1603701720000\":\"31\",\"1603701725000\":\"30\",\"1603701730000\":\"31\",\"1603701735000\":\"31.39\",\"1603701740000\":\"32.2\",\"1603701745000\":\"32.79\",\"1603701750000\":\"32.2\",\"1603701755000\":\"30.6\",\"1603701760000\":\"31.6\",\"1603701765000\":\"29.8\",\"1603701770000\":\"29.8\",\"1603701775000\":\"30\",\"1603701780000\":\"30.19\",\"1603701785000\":\"30.19\",\"1603701790000\":\"23.6\"},\"登录\":{\"1603701480000\":\"6.4\",\"1603701485000\":\"30.6\",\"1603701490000\":\"30.6\",\"1603701495000\":\"31\",\"1603701500000\":\"31.8\",\"1603701505000\":\"30.6\",\"1603701510000\":\"31.19\",\"1603701515000\":\"31.39\",\"1603701520000\":\"31.8\",\"1603701525000\":\"31.8\",\"1603701530000\":\"31.19\",\"1603701535000\":\"32.6\",\"1603701540000\":\"32.6\",\"1603701545000\":\"30.39\",\"1603701550000\":\"31.8\",\"1603701555000\":\"31.8\",\"1603701560000\":\"31\",\"1603701565000\":\"32\",\"1603701570000\":\"32.39\",\"1603701575000\":\"31\",\"1603701580000\":\"32.39\",\"1603701585000\":\"32.2\",\"1603701590000\":\"32.2\",\"1603701595000\":\"33\",\"1603701600000\":\"33.39\",\"1603701605000\":\"31.8\",\"1603701610000\":\"30.8\",\"1603701615000\":\"31.19\",\"1603701620000\":\"31.39\",\"1603701625000\":\"31\",\"1603701630000\":\"32.79\",\"1603701635000\":\"31.8\",\"1603701640000\":\"32\",\"1603701645000\":\"32\",\"1603701650000\":\"30.8\",\"1603701655000\":\"32.2\",\"1603701660000\":\"31.19\",\"1603701665000\":\"28.39\",\"1603701670000\":\"31.39\",\"1603701675000\":\"30.6\",\"1603701680000\":\"31.19\",\"1603701685000\":\"31\",\"1603701690000\":\"30.8\",\"1603701695000\":\"32\",\"1603701700000\":\"31\",\"1603701705000\":\"32.39\",\"1603701710000\":\"30.39\",\"1603701715000\":\"30\",\"1603701720000\":\"32.2\",\"1603701725000\":\"30.8\",\"1603701730000\":\"31.8\",\"1603701735000\":\"31.6\",\"1603701740000\":\"33\",\"1603701745000\":\"32.39\",\"1603701750000\":\"32\",\"1603701755000\":\"30\",\"1603701760000\":\"31.6\",\"1603701765000\":\"31.19\",\"1603701770000\":\"30.39\",\"1603701775000\":\"29.8\",\"1603701780000\":\"30.6\",\"1603701785000\":\"30\",\"1603701790000\":\"24\"},\"17923/doc_html\":{\"1603701480000\":\"6.2\",\"1603701485000\":\"30.19\",\"1603701490000\":\"31.19\",\"1603701495000\":\"31.19\",\"1603701500000\":\"31.39\",\"1603701505000\":\"31.19\",\"1603701510000\":\"31.39\",\"1603701515000\":\"30.19\",\"1603701520000\":\"32.6\",\"1603701525000\":\"32\",\"1603701530000\":\"31.19\",\"1603701535000\":\"31.39\",\"1603701540000\":\"31.8\",\"1603701545000\":\"30.6\",\"1603701550000\":\"31.39\",\"1603701555000\":\"31.8\",\"1603701560000\":\"30.8\",\"1603701565000\":\"31.39\",\"1603701570000\":\"31.8\",\"1603701575000\":\"31.39\",\"1603701580000\":\"32.6\",\"1603701585000\":\"31.19\",\"1603701590000\":\"32\",\"1603701595000\":\"32.79\",\"1603701600000\":\"32\",\"1603701605000\":\"31.6\",\"1603701610000\":\"30.8\",\"1603701615000\":\"30.6\",\"1603701620000\":\"31\",\"1603701625000\":\"31.6\",\"1603701630000\":\"32.39\",\"1603701635000\":\"30.39\",\"1603701640000\":\"32.2\",\"1603701645000\":\"32.6\",\"1603701650000\":\"31\",\"1603701655000\":\"32.79\",\"1603701660000\":\"31\",\"1603701665000\":\"29.19\",\"1603701670000\":\"30\",\"1603701675000\":\"30.39\",\"1603701680000\":\"30.6\",\"1603701685000\":\"30.39\",\"1603701690000\":\"30.8\",\"1603701695000\":\"30\",\"1603701700000\":\"31.39\",\"1603701705000\":\"31.8\",\"1603701710000\":\"30\",\"1603701715000\":\"30.39\",\"1603701720000\":\"31.19\",\"1603701725000\":\"30\",\"1603701730000\":\"31\",\"1603701735000\":\"31.19\",\"1603701740000\":\"32.39\",\"1603701745000\":\"32.79\",\"1603701750000\":\"32.2\",\"1603701755000\":\"30.6\",\"1603701760000\":\"31.6\",\"1603701765000\":\"29.8\",\"1603701770000\":\"29.8\",\"1603701775000\":\"30\",\"1603701780000\":\"30\",\"1603701785000\":\"30.39\",\"1603701790000\":\"19.6\"},\"allGroups\":{}},\"xName\":\"执行时间\",\"xUnit\":\"毫秒\",\"yName\":\"TPS(笔/秒)\",\"yUnit\":\"(笔/秒)\"},{\"chartName\":\"总TPS随执行时间趋势\",\"chartType\":\"TREND\",\"trendDataMap\":{\"下单\":{},\"登录\":{},\"17923/doc_html\":{},\"allGroups\":{\"1603701480000\":\"19\",\"1603701485000\":\"90.79\",\"1603701490000\":\"93\",\"1603701495000\":\"93.4\",\"1603701500000\":\"94.59\",\"1603701505000\":\"93\",\"1603701510000\":\"94\",\"1603701515000\":\"91.79\",\"1603701520000\":\"97\",\"1603701525000\":\"95.79\",\"1603701530000\":\"93.59\",\"1603701535000\":\"95.4\",\"1603701540000\":\"96.2\",\"1603701545000\":\"91.59\",\"1603701550000\":\"94.59\",\"1603701555000\":\"95.4\",\"1603701560000\":\"92.59\",\"1603701565000\":\"94.79\",\"1603701570000\":\"96\",\"1603701575000\":\"93.79\",\"1603701580000\":\"97.59\",\"1603701585000\":\"94.59\",\"1603701590000\":\"96.2\",\"1603701595000\":\"98.59\",\"1603701600000\":\"97.4\",\"1603701605000\":\"95\",\"1603701610000\":\"92.4\",\"1603701615000\":\"92.4\",\"1603701620000\":\"93.59\",\"1603701625000\":\"94\",\"1603701630000\":\"97.59\",\"1603701635000\":\"92.59\",\"1603701640000\":\"96.59\",\"1603701645000\":\"97\",\"1603701650000\":\"92.79\",\"1603701655000\":\"97.79\",\"1603701660000\":\"93.4\",\"1603701665000\":\"86.59\",\"1603701670000\":\"91.59\",\"1603701675000\":\"91.2\",\"1603701680000\":\"92.4\",\"1603701685000\":\"91.79\",\"1603701690000\":\"92.4\",\"1603701695000\":\"92\",\"1603701700000\":\"93.79\",\"1603701705000\":\"96\",\"1603701710000\":\"90.4\",\"1603701715000\":\"91\",\"1603701720000\":\"94.4\",\"1603701725000\":\"90.79\",\"1603701730000\":\"93.79\",\"1603701735000\":\"94.2\",\"1603701740000\":\"97.59\",\"1603701745000\":\"98\",\"1603701750000\":\"96.4\",\"1603701755000\":\"91.2\",\"1603701760000\":\"94.79\",\"1603701765000\":\"90.79\",\"1603701770000\":\"90\",\"1603701775000\":\"89.79\",\"1603701780000\":\"90.79\",\"1603701785000\":\"90.59\",\"1603701790000\":\"67.2\"}},\"xName\":\"执行时间\",\"xUnit\":\"毫秒\",\"yName\":\"TPS(笔/秒)\",\"yUnit\":\"(笔/秒)\"}],\"dataType\":\"BIZ\",\"tableDataList\":[{\"dataList\":[{\"allUsers\":[\"40\",\"\",\"\"],\"appAllUsers\":[],\"appName\":[],\"avgMemUsagePercent\":[],\"avgWholeCpuUsagePercent\":[],\"failCount\":[\"0\",\"0\",\"0\"],\"name\":[\"登录\",\"下单\",\"17923/doc_html\"],\"ninetyResponseTime\":[\"678\",\"676\",\"3\"],\"sceneName\":[\"登录下单场景\",\"\",\"\"],\"sceneNameApp\":[],\"successCount\":[\"9734\",\"9657\",\"9637\"],\"successPercent\":[\"100%\",\"100%\",\"100%\"],\"successTps\":[\"31.29\",\"31.05\",\"30.98\"],\"thinkingTime\":[\"0\",\"0\",\"无数据\"],\"totalAvgResponseTime\":[\"626.88\",\"629.3\",\"2.13\"],\"totalFailCount\":[\"0\",\"\",\"\"],\"totalSuccessCount\":[\"29028\",\"\",\"\"],\"totalSuccessPercent\":[\"100%\",\"\",\"\"],\"totalSuccessTps\":[\"93.33\",\"\",\"\"],\"transNameKey\":[]}],\"tableName\":\"压力视角数据汇总\",\"titleMap\":{\"sceneName\":\"场景名称\",\"name\":\"事务名称\",\"allUsers\":\"并发数\",\"successCount\":\"成功数\",\"failCount\":\"失败数\",\"successPercent\":\"成功率\",\"successTps\":\"成功tps(笔/秒)\",\"totalAvgResponseTime\":\"平均响应时间(ms)\",\"ninetyResponseTime\":\"90%响应时间(ms)\",\"totalSuccessTps\":\"总成功TPS(笔/秒)\",\"totalSuccessCount\":\"总成功数\",\"totalFailCount\":\"总失败数\",\"totalSuccessPercent\":\"总成功率\",\"thinkingTime\":\"延迟设置(ms)\"}}]},\"deletedReportList\":[{\"alerts\":0,\"allUsers\":40,\"baseline\":false,\"baselineId\":\"526896377922322432\",\"createTime\":1603701480000,\"creatorId\":\"132078224594309120\",\"endTime\":1603701794000,\"goalId\":\"71114111916703744\",\"id\":\"527525497521831936\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603701480000,\"outerTaskId\":\"\",\"pass\":true,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/58/D8/wKgAQl-WiueEGn_WAAAAAAAAAAA762.log\",\"runLogFileKey\":\"group1/M00/58/D8/wKgAQl-WiueEOVNEAAAAAAAAAAA494.log\",\"sceneExecId\":\"71272002202107904\",\"sceneId\":\"71113751523229696\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201026163759\",\"startTime\":1603701480000,\"suspected\":0,\"title\":\"40VU-5分钟14秒-登录下单场景\",\"workspaceId\":\"71110801821270016\"}],\"description\":\"\",\"id\":\"71114383851257856\",\"name\":\"稳定性-时间趋势\",\"planGoalType\":\"STABLE_TIME_TREND\",\"planReportDataId\":\"71114383851257856\",\"planReportId\":\"71114383789391872\",\"reportIdList\":[\"527525497521831936\"],\"reportList\":[{\"alerts\":0,\"allUsers\":40,\"baseline\":false,\"baselineId\":\"526896377922322432\",\"createTime\":1603701480000,\"creatorId\":\"132078224594309120\",\"endTime\":1603701794000,\"goalId\":\"71114111916703744\",\"id\":\"527525497521831936\",\"merchantId\":\"132078224594309120\",\"modifyTime\":1603701480000,\"outerTaskId\":\"\",\"pass\":true,\"planId\":\"71111334373097472\",\"remark\":\"本次压测共执行检查项 $CheckCount 条，其中发现不通过项 $UnPassCount 条；疑似性能问题 $SuspectedCount 个；缺陷 $BugCount 个；测试结果为: $Pass\",\"reportStatus\":\"ANALYSED\",\"requestLogFileKey\":\"group1/M00/58/D8/wKgAQl-WiueEGn_WAAAAAAAAAAA762.log\",\"runLogFileKey\":\"group1/M00/58/D8/wKgAQl-WiueEOVNEAAAAAAAAAAA494.log\",\"sceneExecId\":\"71272002202107904\",\"sceneId\":\"71113751523229696\",\"sceneMode\":\"NORMAL\",\"serialNumber\":\"20201026163759\",\"startTime\":1603701480000,\"suspected\":0,\"title\":\"40VU-5分钟14秒-登录下单场景\",\"workspaceId\":\"71110801821270016\"}]}";
//        PlanReportDataEachGoalTypeDTO resultInfo4 = JSON.parseObject(s4, PlanReportDataEachGoalTypeDTO.class);
//        dataList.add(resultInfo1);
//        dataList.add(resultInfo2);
//        dataList.add(resultInfo3);
//        dataList.add(resultInfo4);
//        generateExcel(planReportDTO, dataList);
//    }
//
//    public static void generateExcel(PlanReportDTO planReportDTO, List<PlanReportDataEachGoalTypeDTO> dataList) {
//        try {
//            // todo sjh
//            String templateFilePath = TestFileUtil.getPath() + "plan-report-template.docx";
//
//            // 配置，使用spring EL表达式
//            Configure configure = Configure.newBuilder()
//                    .bind("toc", new TOCRenderPolicy())
//                    .addPlugin('$', new PlanReportTableRenderPolicy())
//                    .setElMode(Configure.ELMode.SPEL_MODE)
//                    .build();
//            XWPFTemplate template = XWPFTemplate.compile(templateFilePath, configure);
//
//            Map<String, Object> result = Maps.newHashMap();
//            // 主页
//            fillIndexInfo(result, planReportDTO);
//            // 目录
//            result.put("toc", "");
//            // 测试需求
//            fillRequirement(result, planReportDTO);
//            // 评估指标
//            fillQuota(result, planReportDTO.getPlanGoalList());
//            // 被测环境
//            fillEnvironment(result, planReportDTO);
//            // 测试数据-基准场景
//            fillData(result, dataList, PlanGoalTypeEnum.BASELINE);
//            // 测试数据-单场景并发趋势
//            fillData(result, dataList, PlanGoalTypeEnum.SINGLE_USER_TREND);
//            // 混合场景-并发数趋势
//            fillData(result, dataList, PlanGoalTypeEnum.MIX_USER_TREND);
//            // 稳定性-时间趋势
//            fillData(result, dataList, PlanGoalTypeEnum.STABLE_TIME_TREND);
//            // 报告结论
//            fillConclusion(result, planReportDTO);
//
//            template.render(result);
//
//            // todo sjh 外层关闭
//            String outputFileName = TestFileUtil.getPath() + "report.docx";
//            FileOutputStream out = new FileOutputStream(outputFileName);
//            template.write(out);
//            out.flush();
//            out.close();
//            template.close();
//        } catch (Exception e) {
//            log.error("error.", e);
//        }
//    }
//
//    private static void fillIndexInfo(Map<String, Object> result, PlanReportDTO planReportDTO) {
//        result.put("title", planReportDTO.getTitle());
//        result.put("date", DateUtils.formatDate(planReportDTO.getCreateTime(), "yyyy 年 MM 月 dd 日"));
//        result.put("creator", planReportDTO.getCreator().getNickName());
//    }
//
//    private static void fillRequirement(Map<String, Object> result, PlanReportDTO planReportDTO) {
//        result.put("requirement", richTextToText(planReportDTO.getPurpose()));
//    }
//
//    private static void fillQuota(Map<String, Object> result, List<PlanGoalMetaDTO> planGoalList) {
//        RowRenderData header = RowRenderData.build(
//                new TextRenderData("评估类型")
//                , new TextRenderData("所属场景")
//                , new TextRenderData("评估对象")
//                , new TextRenderData("指标")
//                , new TextRenderData("要求")
//                , new TextRenderData("允许基线浮动范围"));
//        header.setRowStyle(buildTableHeaderStyle());
//
//        List<Map<String, Object>> quotaList = Lists.newArrayList();
//        for (PlanGoalMetaDTO planGoalMetaDTO : planGoalList) {
//            Map<String, Object> itemMap = Maps.newHashMap();
//            itemMap.put("name", planGoalMetaDTO.getName());
//            itemMap.put("typeName", planGoalMetaDTO.getTypeName());
//            itemMap.put("alertRuleCount", planGoalMetaDTO.getAlertRuleCount());
//            itemMap.put("status", planGoalMetaDTO.getStatus() ? "通过" : "不通过");
//
//            List<RowRenderData> rowList = Lists.newArrayList();
//            List<AlertRule> alertRuleList = planGoalMetaDTO.getAlertRuleList();
//            for (AlertRule alertRule : alertRuleList) {
//                String require = getRequire(alertRule);
//                RowRenderData row = RowRenderData.build(alertRule.getQuotaTypeName(),
//                        alertRule.getSceneName(),
//                        alertRule.getTargetName(),
//                        alertRule.getDescription(),
//                        require,
//                        Objects.isNull(alertRule.getFloatOffset()) ? "" : alertRule.getFloatOffset() + alertRule.getUnit());
//                row.setRowStyle(buildTableRowStyle());
//                rowList.add(row);
//            }
//            itemMap.put("form", buildTable(header, rowList));
//            quotaList.add(itemMap);
//        }
//        result.put("quotaList", quotaList);
//    }
//
//    private static void fillEnvironment(Map<String, Object> result, PlanReportDTO planReportDTO) {
//        RowRenderData header = RowRenderData.build(
//                new TextRenderData("集群名")
//                , new TextRenderData("所属应用")
//                , new TextRenderData("节点数")
//                , new TextRenderData("IP网址")
//                , new TextRenderData("总CPU数")
//                , new TextRenderData("总内存")
//                , new TextRenderData("总磁盘大小"));
//        header.setRowStyle(buildTableHeaderStyle());
//        MiniTableRenderData miniTableRenderData = buildTable(header);
//
//        List<RowRenderData> rowList = Lists.newArrayList();
//        Object object = planReportDTO.getServerInfo();
//        JSONArray root = JSON.parseArray(object.toString());
//        for (int i = 0; i < root.size(); i++) {
//            JSONObject item = root.getJSONObject(i);
//            RowRenderData row = RowRenderData.build(item.getString("clusterName"),
//                    item.getString("appName"),
//                    "",
//                    item.getString("ip"),
//                    item.getString("cpuCores"),
//                    getNetFileSizeDescription(item.getLongValue("totalSystemMemory")),
//                    getNetFileSizeDescription(item.getLongValue("diskTotalSize")));
//            row.setRowStyle(buildTableRowStyle());
//            rowList.add(row);
//        }
//        miniTableRenderData.setRows(rowList);
//        result.put("environmentForm", miniTableRenderData);
//    }
//
//    private static MiniTableRenderData buildTable(RowRenderData header) {
//        MiniTableRenderData miniTableRenderData = new MiniTableRenderData(header, NO_DATA_DESC);
//        miniTableRenderData.setStyle(buildTableRowStyle());
//        return miniTableRenderData;
//    }
//
//    private static MiniTableRenderData buildTable(RowRenderData header, List<RowRenderData> rowList) {
//        MiniTableRenderData miniTableRenderData = buildTable(header);
//        miniTableRenderData.setRows(rowList);
//        return miniTableRenderData;
//    }
//
//    private static TableStyle buildTableRowStyle() {
//        TableStyle tableStyle = new TableStyle();
//        tableStyle.setAlign(STJc.CENTER);
//        return tableStyle;
//    }
//
//    private static TableStyle buildTableHeaderStyle() {
//        TableStyle tableStyle = new TableStyle();
//        tableStyle.setBackgroundColor("57B7EB");
//        tableStyle.setAlign(STJc.CENTER);
//        return tableStyle;
//    }
//
//    private static void fillData(Map<String, Object> result, List<PlanReportDataEachGoalTypeDTO> dtoList, PlanGoalTypeEnum type) {
//        PlanReportDataEachGoalTypeDTO data = null;
//        for (PlanReportDataEachGoalTypeDTO temp : dtoList) {
//            if (temp.getPlanGoalType() == type) {
//                data = temp;
//                break;
//            }
//        }
//
//        // 若数据不存在
//        if (Objects.isNull(data)) {
//            result.put(getKeyOfData("descriptionOf", type), "");
//            result.put(getKeyOfData("bizFormListOf", type), Lists.newArrayList());
//            result.put(getKeyOfData("bizChartListOf", type), Lists.newArrayList());
//            result.put(getKeyOfData("appFormListOf", type), Lists.newArrayList());
//            result.put(getKeyOfData("appChartListOf", type), Lists.newArrayList());
//            return;
//        }
//
//        result.put(getKeyOfData("descriptionOf", type), richTextToText(data.getDescription()));
//
//        // 事务数据
//        if (Objects.isNull(data.getBizData())) {
//            result.put(getKeyOfData("bizFormListOf", type), Lists.newArrayList());
//            result.put(getKeyOfData("bizChartListOf", type), Lists.newArrayList());
//        } else {
//            // 事务表格
//            result.put(getKeyOfData("bizFormListOf", type), getFormListOfData(data.getBizData().getTableDataList()));
//            // 事务曲线图
//            result.put(getKeyOfData("bizChartListOf", type), getChartListOfData(data.getBizData().getChartDataList()));
//        }
//
//        // 应用数据
//        if (Objects.isNull(data.getAppData())) {
//            result.put(getKeyOfData("appFormListOf", type), Lists.newArrayList());
//            result.put(getKeyOfData("appChartListOf", type), Lists.newArrayList());
//        } else {
//            // 应用表格
//            result.put(getKeyOfData("appFormListOf", type), getFormListOfData(data.getAppData().getTableDataList()));
//            // 应用曲线图
//            result.put(getKeyOfData("appChartListOf", type), getChartListOfData(data.getAppData().getChartDataList()));
//        }
//    }
//
//    private static void fillConclusion(Map<String, Object> result, PlanReportDTO planReportDTO) {
//        result.put("conclusion", richTextToText(planReportDTO.getConclusion()));
//    }
//
//    /**
//     * 测试数据-获取事务/应用表格数据
//     *
//     * @param tableDataList 原始表格数据
//     * @return 表格数据。由于poi-tl框架在word模板中，无法很好的表示this的概念，所以讨巧包装成一个map（虽然map中只有一个元素）
//     */
//    private static List<Map<String, MiniTableRenderData>> getFormListOfData(List<PlanReportTable> tableDataList) {
//        List<Map<String, MiniTableRenderData>> formDataList = Lists.newArrayList();
//        Map<String, MiniTableRenderData> item;
//        if (!CollectionUtil.isEmpty(tableDataList)) {
//            for (PlanReportTable planReportTable : tableDataList) {
//                item = Maps.newHashMap();
//                RowRenderData header = RowRenderData.build(planReportTable.getTitleMap().values().toArray(new String[0]));
//                header.setRowStyle(buildTableHeaderStyle());
//                MiniTableRenderData miniTableRenderData = buildTable(header);
//
//                if (CollectionUtil.isEmpty(planReportTable.getDataList())) {
//                    item.put("form", miniTableRenderData);
//                    formDataList.add(item);
//                    continue;
//                }
//
//                String dataListStr = JSON.toJSONString(planReportTable.getDataList());
//                JSONArray dataListJson = JSON.parseArray(dataListStr);
//                List<RowRenderData> rowRenderDataList = getRowListOfData(dataListJson, planReportTable.getTitleMap());
//                miniTableRenderData.setRows(rowRenderDataList);
//                item.put("form", miniTableRenderData);
//                formDataList.add(item);
//            }
//        }
//
//        return formDataList;
//    }
//
//    /**
//     * 测试数据-获取事务/应用曲线图数据
//     *
//     * @param chartDataList 原始曲线图数据
//     * @return 曲线图数据。由于poi-tl框架在word模板中，无法很好的表示this的概念，所以讨巧包装成一个map（虽然map中只有一个元素）
//     */
//    private static List<Map<String, Object>> getChartListOfData(List<PlanReportChart> chartDataList) {
//        List<Map<String, Object>> chartList = Lists.newArrayList();
//        Map<String, Object> item;
//        if (!CollectionUtil.isEmpty(chartDataList)) {
//            for (PlanReportChart planReportChart : chartDataList) {
//                item = Maps.newHashMap();
//                ChartMultiSeriesRenderData chart = new ChartMultiSeriesRenderData();
//                chart.setChartTitle(planReportChart.getChartName());
//                item.put("chartType", planReportChart.getChartType());
//                if ("WBAR".equals(planReportChart.getChartType())) {
//                    // 横向条状图
//                    LinkedHashMap<String, String> barDataMap = planReportChart.getBarDataMap();
//                    if (CollectionUtil.isEmpty(barDataMap)) {
//                        item.put("chart", chart);
//                        continue;
//                    }
//
//                    // 纵坐标
//                    chart.setCategories(barDataMap.keySet().toArray(new String[0]));
//
//                    // 横坐标
//                    List<SeriesRenderData> seriesRenderData = Lists.newArrayList();
//                    seriesRenderData.add(new SeriesRenderData("1", transToDouble(barDataMap.values().toArray(new String[0]))));
//                    chart.setSeriesDatas(seriesRenderData);
//                } else if ("TREND".equals(planReportChart.getChartType())) {
//                    // 曲线图
//                    LinkedHashMap<String, LinkedHashMap<String, String>> trendDataMap = planReportChart.getTrendDataMap();
//                    if (CollectionUtil.isEmpty(trendDataMap)) {
//                        item.put("chart", chart);
//                        continue;
//                    }
//
//                    // 横坐标 todo sjh 部分横坐标值需要转化
//                    String[] categories = getCategoriesOfChart(planReportChart);
//                    if (categories.length == 0) {
//                        item.put("chart", chart);
//                        continue;
//                    }
//                    chart.setCategories(categories);
//
//                    // 纵坐标
//                    List<SeriesRenderData> seriesRenderData = Lists.newArrayList();
//                    for (String key : trendDataMap.keySet()) {
//                        LinkedHashMap<String, String> dataTemp = trendDataMap.get(key);
//                        if (CollectionUtil.isEmpty(trendDataMap.get(key))) {
//                            continue;
//                        }
//                        seriesRenderData.add(new SeriesRenderData(key, transToDouble(dataTemp.values().toArray(new String[0]))));
//                    }
//                    chart.setSeriesDatas(seriesRenderData);
//                }
//
//                item.put("chart", chart);
//                chartList.add(item);
//            }
//        }
//        return chartList;
//    }
//
//    private static String[] getCategoriesOfChart(PlanReportChart planReportChart) {
//        LinkedHashMap<String, LinkedHashMap<String, String>> trendDataMap = planReportChart.getTrendDataMap();
//        Set<String> categoriesSet = Sets.newTreeSet();
//        for (String key : trendDataMap.keySet()) {
//            LinkedHashMap<String, String> item = trendDataMap.get(key);
//            if (Objects.isNull(item)) {
//                continue;
//            }
//
//            categoriesSet.addAll(item.keySet());
//        }
//        // 坐标转化
//        if (X_Y_VIEW_TRANS_FORM.equals(planReportChart.getXViewTransform())) {
//            Set<String> newCategoriesSet = Sets.newTreeSet();
//            categoriesSet.forEach(c -> {
//                try {
//                    newCategoriesSet.add(DateUtils.formatDate(new Date(Long.parseLong(c)), "MM-dd HH:mm:ss"));
//                } catch (Exception e) {
//                    newCategoriesSet.add(c);
//                }
//            });
//            return newCategoriesSet.toArray(new String[0]);
//        }
//        return categoriesSet.toArray(new String[0]);
//    }
//
//    private static Number[] transToDouble(String[] strings) {
//        List<Number> result = Lists.newArrayList();
//        for (String str : strings) {
//            try {
//                result.add(new BigDecimal(str).setScale(2, BigDecimal.ROUND_HALF_UP));
//            } catch (Exception e) {
//                result.add(null);
//            }
//        }
//        return result.toArray(new Number[0]);
//    }
//
//    /**
//     * 获取评估要求
//     *
//     * @param alertRule 评估信息
//     * @return 评估要求
//     */
//    private static String getRequire(AlertRule alertRule) {
//        String before = "";
//        Double center = null;
//        String after = alertRule.getUnit();
//        String require = alertRule.getRequire();
//        if ("<".equals(require)) {
//            center = alertRule.getThresholdDown();
//            before = "<";
//        } else if (">".equals(require)) {
//            center = alertRule.getThresholdUp();
//            before = ">";
//        } else if ("≥".equals(require)) {
//            center = alertRule.getThresholdUp();
//            before = "≥";
//        } else if ("≤".equals(require)) {
//            center = alertRule.getThresholdDown();
//            before = "≤";
//        }
//        return Objects.isNull(center) ? "" : before + center + after;
//    }
//
//
//    private static String getNetFileSizeDescription(long size) {
//        StringBuilder sb = new StringBuilder();
//        DecimalFormat format = new DecimalFormat("###.0");
//        if (size >= 1024 * 1024 * 1024) {
//            double i = (size / (1024.0 * 1024.0 * 1024.0));
//            sb.append(format.format(i)).append("GB");
//        } else if (size >= 1024 * 1024) {
//            double i = (size / (1024.0 * 1024.0));
//            sb.append(format.format(i)).append("MB");
//        } else if (size >= 1024) {
//            double i = (size / (1024.0));
//            sb.append(format.format(i)).append("KB");
//        } else {
//            if (size <= 0) {
//                sb.append("0B");
//            } else {
//                sb.append((int) size).append("B");
//            }
//        }
//        return sb.toString();
//    }
//
//    private static String getKeyOfData(String prefix, PlanGoalTypeEnum planGoalType) {
//        return prefix + planGoalType.getCode();
//    }
//
//    /**
//     * 获取数据行
//     *
//     * @param titleMap     表头
//     * @param dataListJson 数据
//     * @return 数据行
//     */
//    private static List<RowRenderData> getRowListOfData(JSONArray dataListJson, LinkedHashMap<String, String> titleMap) {
//        List<RowRenderData> resultList = Lists.newArrayList();
//        List<String> result;
//
//        for (Object o : dataListJson) {
//            JSONObject itemJson = (JSONObject) o;
//
//            // 表总数据行
//            int rowCount = getRowCount(itemJson, titleMap);
//            for (int index = 0; index < rowCount; index++) {
//                result = Lists.newArrayList();
//
//                for (Map.Entry<String, String> entry : titleMap.entrySet()) {
//                    // 表头对应的字段名
//                    String key = entry.getKey();
//                    JSONArray valueListJson = itemJson.getJSONArray(key);
//
//                    if (valueListJson == null) {
//                        result.add(null);
//                        continue;
//                    }
//
//                    // 若数据不够，则填充null。一般不会出现，若出现，则是传入的数据问题。
//                    if (valueListJson.size() - 1 < index) {
//                        result.add(NO_DATA_DESC);
//                        continue;
//                    }
//
//                    result.add(valueListJson.get(index).toString());
//                }
//
//                RowRenderData row = RowRenderData.build(result.toArray(new String[0]));
//                row.setRowStyle(buildTableRowStyle());
//                resultList.add(row);
//            }
//        }
//        return resultList;
//    }
//
//    /**
//     * 获取这一数据块的行数
//     *
//     * @param itemJson dataList中的元素
//     * @return 行数
//     */
//    private static int getRowCount(JSONObject itemJson, LinkedHashMap<String, String> headMap) {
//        int maxRowCount = 0;
//        for (String key : itemJson.getInnerMap().keySet()) {
//            if (!headMap.containsKey(key)) {
//                continue;
//            }
//            maxRowCount = Math.max(maxRowCount, ((JSONArray) itemJson.getInnerMap().get(key)).size());
//        }
//        return maxRowCount;
//    }
//
//    /**
//     * 去掉富文本标签
//     *
//     * @param str 原文本
//     * @return 结果
//     */
//    private static String richTextToText(String str) {
//        return str.replaceAll("<[.[^<]]*>", "");
//    }
}
